package com.example.litepal;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import org.litepal.LitePal;
import org.litepal.crud.LitePalSupport;
import org.litepal.exceptions.DataSupportException;

import java.util.List;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button createdb = findViewById(R.id.create_database);
        Button add = findViewById(R.id.add_data);
        Button update = findViewById(R.id.update_data);
        Button del = findViewById(R.id.delete_data);
        Button query = findViewById(R.id.query_data);
        createdb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LitePal.getDatabase();
            }
        });
        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //创建book模型类实例
                Book book = new Book();//此时所有字段都有默认值
                //通过set方法来设置数据
                book.setName("名侦探柯南");
                book.setAuthor("青山刚昌");
                book.setPages(56);
                book.setPrice(25.8);
                book.setPress("未知");
                //调用从LitePalSupport 类中继承的save方法
                book.save();
            }
        });
        update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Book book = new Book();
                book.setPress("日本出版社");
                book.setPages(666);
                // 修改满足条件的所有数据
                book.updateAll("name = ? and author = ?","名侦探柯南","青山刚昌");
//                对于所有想要将为数据更新成默认值的操作，提供了setToDefault方法
//                book.setToDefault("pages");
//                将所有书的页数都更新为0
//                book.updateAll();
            }
        });
        del.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LitePal.deleteAll(Book.class,"pages > ?","300");
            }
        });
        query.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 查询Book所有记录
                List<Book> books = LitePal.findAll(Book.class);
                //查询第一条数据
                Book single = LitePal.findFirst(Book.class);
                Log.d(TAG, "第一条记录书名：" + single.getName());
                for(Book k: books){
                    Log.d(TAG, "书名：" + k.getName());
                    Log.d(TAG, "作者：" + k.getAuthor());
                    Log.d(TAG, "页数：" + k.getPages());
                    Log.d(TAG, "价格：" + k.getPrice());
                    Log.d(TAG, "出版社：" + k.getPress());
                }
            }
        });
    }
}